/***********************************************************************************
 * 文件名： btsc_obj_config.h
 * 作者： 刘言
 * 版本： 1
 * 说明：
 *      面向对象设计的升压控制器，便于多路升压控制。升压电路的驱动，通过电压值反馈调整PWM
 * 占空比达到升压，并恒定电压的目的。不要与单例模式的 boost_controller 同时使用。
 *      提供以下功能：
 *          升压输出；
 *          电压调节；
 *          过流保护和通知；
 *          过载通知；
 *          开路保护和通知【未实现】。
 * 修改记录：
 * 	2022/07/15: 初版。 刘言。
***********************************************************************************/
#ifndef _BSTC_CONFIG_H_
#define _BSTC_CONFIG_H_

#ifdef __cplusplus
extern "C" {
#endif 

#include "polsys.h"

// 功能开关

// 启用外部计算AD值。【目前不能关闭】
// 启用后设置和控制的目标参数是AD值而不是电压值，这意味着使用者需要自行计算目标电压对应的AD值。
// 启用后可以极大的节省代码量。
// 一个比较好的方式是使用宏定义获取AD值，比如：
// #define GET_ADV(voltage)     ((u32)voltage*FBRL*FULL_ADV)/((u32)(FBRH + FBRL)*ADC_VREF)
// BSTC_SetTarget(bstc_obj, GET_ADV(voltage));
// 其中 FBRL FBRH 分别是低侧、高侧反馈分压电阻的比例， FULL_ADV 是ADC满值， ADC_VREF 是ADC参考电压。
#define _BSTC_USE_EXT_CAL_ADV

// 参数定义

// 允许的最大对象实例的数量【避免使用链表节省代码量的一种妥协，后续polsys任务支持链表了可以考虑去掉】
// 按照应用的实际情况定义，如果小于实际数量，将会出错并可能没有提示。
#define _BSTC_MAX_OBJS              2

// PWM满值，当不共用PWM控制器时，需要设置为多个PWM控制器中的最大值便于确定数据类型。
#define _BSTC_FULL_PWM_VALUE        TIM4_CYCLE

// ADC参考电压，当不共用ADC时，设置为多个ADC中的最大值便于确定数据类型。
#define _BSTC_ADC_VREF              ADC_FULL_VOLTAGE    

// ADC满值，当不共用ADC时，设置为多个ADC中的最大值便于确定数据类型。
#define _BSTC_FULL_ADV              ADC_FULL_VALUE


#ifdef __cplusplus
}
#endif

#endif




